package org.jsets.fastboot.oss.model.entity;

import lombok.Data;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
import org.javers.core.metamodel.annotation.Id;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@Data
@ToString
@TableName("sys_file_meta")
@ApiModel(description = "操作日志")
public class FileMeta implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "主键")
	private Long id;
	
	private String appName;// 应用名称
	private String bizIdentifier;// 业务标识
	private String bizType;// 业务类型
	private String storageId;//存储引擎
	private String bucketName;//桶名称
	private String name;// 文件名称(不包含后缀)
	private String extension; // 文件类型（后缀）
	private long length; // 文件大小
	
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	private Date uploadTime; // 上传日期
	private String checksum; // MD5校验码
	private String remark; // 文件描述
	
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	private Date lastAccessTime; // 最后访问时间
	private Long citations;//下载次数
	
	//=============非持久化属性=============
	@TableField(exist = false)
	private String dataBase64; // 数据的base64编码
	
	@TableField(exist = false)
	private String contentType;
}
